package com.intexh.speedandroid.sharesdk;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
import android.os.Message;


import com.intexh.speedandroid.utils.ToastUtil;

import java.util.HashMap;

import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.onekeyshare.OnekeyShare;

/**
 * Created by Frank on 2017/12/23.
 */

public enum OneKeyShareHelper {
    INSTANCE;
    Context context;
    //显示分享
    public void showShare(Context context, String title, String text, String imageUrl, String linkUrl) {
        this.context=context;
        OnekeyShare oks = new OnekeyShare();
        oks.disableSSOWhenAuthorize();
        // title标题，印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
        oks.setTitle(title);
        // titleUrl是标题的网络链接，仅在Linked-in,QQ和QQ空间使用
        oks.setTitleUrl(linkUrl);
        // text是分享文本，所有平台都需要这个字段
        oks.setText(text);
        //分享网络图片，新浪微博分享网络图片需要通过审核后申请高级写入接口，否则请注释掉测试新浪微博
        oks.setImageUrl(imageUrl);
        // imagePath是图片的本地路径，Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl(linkUrl);
        // comment是我对这条分享的评论，仅在人人网和QQ空间使用
//        oks.setComment(data.getDescription());
        // site是分享此内容的网站名称，仅在QQ空间使用
        oks.setSite(text);
        // siteUrl是分享此内容的网站地址，仅在QQ空间使用
        oks.setSiteUrl(linkUrl);
        oks.setCallback(new PlatformActionListener() {
            @Override
            public void onCancel(Platform arg0, int arg1) {
                handler.sendEmptyMessage(0);
            }

            @Override
            public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
                handler.sendEmptyMessage(1);
            }

            @Override
            public void onError(Platform arg0, int arg1, final Throwable arg2) {
                handler.sendEmptyMessage(2);
            }
        });
        // 启动分享GUI
        oks.show(context);
    }


    @SuppressLint("HandlerLeak")
    Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what){
                case 0:
                    ToastUtil.showToast(context,"分享取消");
                    break;
                case 1:
                    ToastUtil.showToast(context,"分享成功");
                    break;
                case 2:
                    ToastUtil.showToast(context,"分享失败，请检查分享内容");
                    break;
            }
        }
    };
}
